package net.jueb.frameworkDemo.se.observer.eventBus2;

import java.util.concurrent.ScheduledFuture;

/**
 * 事件总线
 * @author juebanlin
 */
public interface EventBus {
	
	/**
	 * 推送事件
	 * @param event
	 */
	void post(Event<?> event);

	ScheduledFuture<?> post(Event<?> event, long delayMills);

	/**
	 * 注册事件消费者
	 * @param arg0
	 * @param arg1
	 */
	 void register(String eventName, Receiver<?> receiver);

	/**
	 * 注销事件消费者
	 * @param arg0
	 * @param arg1
	 */
	void unregister(String eventName, Receiver<?> receiver);
}